/*
  学习目标：编程式导航的使用 - 通过js操作路径跳转
  
*/

import React from 'react';
import { BrowserRouter as Router, Link, NavLink, Route, Switch } from 'react-router-dom';
import './index.css';

export default class App extends React.Component {
  render() {
    return (
      <Router>
        <div className="root_child">
          <h1>app组件</h1>
          <NavLink activeClassName="xxx" to="/home" exact>
            首页
          </NavLink>
          <br />
          <Link to="/my">我的音乐</Link>
          <br />
          <Link to="/friend">朋友</Link>
          <br />
          {/* 没有经过Route组件设置匹配规则的组件, props上没有history */}
          {/* <Home name="zs" /> */}
          <Switch>
            {/* 经过Route组件设置过匹配规则的组件, props上会多出history等属性 */}
            <Route path="/home" component={Home} exact />
            <Route path="/my" component={MyMusic} />
            <Route path="/friend" component={Friend} />
          </Switch>
        </div>
      </Router>
    );
  }
}

function Friend() {
  return (
    <div>
      <div>我是朋友组件</div>
    </div>
  );
}

function Home({ history }) {
  return (
    <>
      <h1>我是首页组件</h1>
      <button
        onClick={() => {
          // history.push('/my');
          // history.go(-1); // 表示后退一步
          history.goBack(); // 表示后退一步
        }}
      >
        点我跳转
      </button>
    </>
  );
}

function MyMusic() {
  return <h1>我是我的音乐件</h1>;
}
